﻿using Common.Attributes;
using System.ComponentModel;
using System.Reflection;

namespace Common.Utils.ObjectUtils;

public static class TypeExtensions
{
    public static string GetDescription(this Type type)
    {
        // 使用反射获取类型的 DescriptionAttribute
        var description = type.GetCustomAttribute<DescriptionAttribute>();
        var gruopDescription = type.GetCustomAttribute<GroupDescriptionAttribute>();

        // 如果类型有 DescriptionAttribute，则返回其描述，否则返回类型的名称
        var desc1 = description != null ? description.Description : type.Name;
        var desc2 = gruopDescription != null ? gruopDescription.Description : type.Name;

        return $"{desc2}-{desc1}";
    }
}